// 引入API
const { updateHealthProfile } = require('../../utils/request');

Page({
  data: {
    // 表单数据
    gender: '男',
    birthDate: '',
    height: '',
    diabetesType: '无',
    diagnosisDate: '',
    
    // 辅助数据
    today: new Date().toISOString().split('T')[0], // 今天日期，用于限制日期选择器
    genderArray: ['男', '女', '其他', '保密'],
    diabetesTypeArray: ['1型', '2型', '妊娠期', '前期', '无', '其他'],
    
    // 页面状态
    loading: false,
    error: '',
    showDiagnosisDate: false, // 是否显示诊断日期（仅当糖尿病类型不是"无"时显示）
  },

  /**
   * 页面加载
   */
  onLoad: function (options) {
    // 获取当前日期作为默认生日
    const today = new Date();
    const year = today.getFullYear();
    const month = String(today.getMonth() + 1).padStart(2, '0');
    const day = String(today.getDate()).padStart(2, '0');
    
    // 默认出生日期设为30年前
    const defaultYear = year - 30;
    
    this.setData({
      birthDate: `${defaultYear}-${month}-${day}`,
      today: `${year}-${month}-${day}`
    });
  },
  
  /**
   * 性别选择改变
   */
  bindGenderChange: function(e) {
    this.setData({
      gender: this.data.genderArray[e.detail.value]
    });
  },
  
  /**
   * 出生日期选择改变
   */
  bindBirthDateChange: function(e) {
    this.setData({
      birthDate: e.detail.value
    });
  },
  
  /**
   * 身高输入改变
   */
  bindHeightChange: function(e) {
    this.setData({
      height: e.detail.value
    });
  },
  
  /**
   * 糖尿病类型选择改变
   */
  bindDiabetesTypeChange: function(e) {
    const diabetesType = this.data.diabetesTypeArray[e.detail.value];
    const showDiagnosisDate = diabetesType !== '无';
    
    this.setData({
      diabetesType,
      showDiagnosisDate
    });
    
    // 如果不显示诊断日期，则清空诊断日期
    if (!showDiagnosisDate) {
      this.setData({
        diagnosisDate: ''
      });
    }
  },
  
  /**
   * 诊断日期选择改变
   */
  bindDiagnosisDateChange: function(e) {
    this.setData({
      diagnosisDate: e.detail.value
    });
  },
  
  /**
   * 提交表单
   */
  async handleSubmit() {
    // 表单验证
    if (!this.data.height) {
      this.setData({ error: '请输入您的身高' });
      return;
    }
    
    if (!this.data.birthDate) {
      this.setData({ error: '请选择您的出生日期' });
      return;
    }
    
    if (this.data.showDiagnosisDate && !this.data.diagnosisDate) {
      this.setData({ error: '请选择您的诊断日期' });
      return;
    }
    
    // 开始提交
    this.setData({ loading: true, error: '' });
    
    try {
      // 准备数据
      const healthData = {
        gender: this.data.gender,
        birthDate: this.data.birthDate,
        height: Number(this.data.height),
        diabetesType: this.data.diabetesType
      };
      
      // 如果有诊断日期，添加到数据中
      if (this.data.diagnosisDate) {
        healthData.diagnosisDate = this.data.diagnosisDate;
      }
      
      // 调用API更新健康资料
      const result = await updateHealthProfile(healthData);
      
      if (result.success) {
        wx.showToast({
          title: '资料保存成功',
          icon: 'success'
        });
        
        // 延迟跳转到首页
        setTimeout(() => {
          wx.switchTab({
            url: '/pages/health/health'
          });
        }, 1500);
      } else {
        this.setData({ error: result.message || '保存失败，请重试' });
      }
    } catch (error) {
      console.error('保存健康资料失败:', error);
      this.setData({ error: error.message || '网络错误，请重试' });
    } finally {
      this.setData({ loading: false });
    }
  }
}); 